package com.stm.bi.dto.query;

import com.stm.framework.annotation.ReqParam;
import lombok.Data;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * 科目-查询入参对象
 *
 * @author qinyongjie
 * @date 2025-05-22
 */
@Data
@Accessors(chain = true)
public class SubjectListQry {


    @ReqParam(label = "主键ID")
    private Long id;

    @ReqParam(label = "多租户所属ID")
    private Long orgId;

    @ReqParam(label = "科目名称-每个租户可以有自己的同名科目，不会相互冲突", required = true)
    private String name;

    @ReqParam(label = "科目ID编码")
    private String subjectCode;

    @ReqParam(label = "归属分类ID", required = true)
    private Long categoryId;

    @ReqParam(label = "参数类型-字典")
    private String paramType;

    @ReqParam(label = "科目参数-字典")
    private String subjectParam;

    @ReqParam(label = "科目定义", required = true)
    private String definition;

    @ReqParam(label = "科目标识-仅限字母", required = true)
    private String fieldName;

    @ReqParam(label = "单位：1-金额，2-比率，3-数量")
    private Integer unit;

    @ReqParam(label = "随机数范围，如0-1000")
    private String randomRange;

    @ReqParam(label = "状态：0-可编辑，1-锁定(不可更改)")
    private Integer status;

    @ReqParam(label = "创建人")
    private String creator;

    @ReqParam(label = "创建人ID")
    private Long creatorId;

    @ReqParam(label = "创建时间")
    private LocalDateTime createDt;

    @ReqParam(label = "最后更新人")
    private String lastUpdater;

    @ReqParam(label = "最后更新人ID")
    private Long lastUpdaterId;

    @ReqParam(label = "最后更新时间")
    private LocalDateTime lastUpdateDt;

    @ReqParam(label = "逻辑删除标识")
    private Integer deleted;

    @ReqParam(label = "备注")
    private String remark;
}
